package ${packageValue}.service;

import ${packageValue}.dto.${entityName}Dto;
import ${packageValue}.query.${entityName}Query;
import ${packageValue}.vo.${entityName}Vo;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.yupaits.yutool.orm.mybatis.support.PageQuery;
import com.yupaits.yutool.plugin.importexport.support.ImportResult;
import org.springframework.web.multipart.MultipartFile;

import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.List;

/**
 * ${comment}Service
 * @author ${author}
 * @since ${date}
 */
public interface ${entityName}Service {

    /**
     * 获取分页数据
     * @param pageQuery 分页查询对象
     * @return 分页数据
     */
    IPage<${entityName}Vo> page(PageQuery<${entityName}Query> pageQuery);

    /**
     * 根据Query对象获取Vo列表
     * @param query ${comment}查询对象
     * @return ${comment}Vo列表
     */
    List<${entityName}Vo> list(${entityName}Query query);

    /**
     * 根据ID获取详情Vo
     * @param id ${comment}ID
     * @return ${comment}Vo对象
     */
    ${entityName}Vo details(Long id);

    /**
     * 保存Dto对象
     * @param dto ${comment}Dto对象
     */
    void save(${entityName}Dto dto);

    /**
     * 根据ID删除
     * @param id ${comment}ID
     */
    void deleteById(Long id);

    /**
     * 导入
     * @param file 导入文件
     * @return 导入结果
     */
    ImportResult importData(MultipartFile file);

    /**
     * 导出
     * @param response HttpServletResponse
     * @param query 导出数据查询对象
     */
    void exportData(HttpServletResponse response, ${entityName}Query query) throws IOException;
}